home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok51
/
m2
/
defs
/
arts.def
next >
Wrap
Text File
|
1993-11-04
|
3KB
|
131 lines
(* _____________________________________________
* // / \ //
* // \ Amiga Run Time System / //
* \\ // / 4.01 / 26.08.90 / bp \ \\ //
* \X/ \_____________________________________________/ \X/
*)
DEFINITION MODULE Arts;
(*$ LargeVars:=FALSE
LongAlign:=FALSE
NameChk:=FALSE
*)
FROM SYSTEM IMPORT
ADDRESS,LONGSET,BPTR;
CONST
maxModName=32; maxKeys=3;
TYPE
ErrorType=(trap,exception,system,assertion,breakPoint,explicit);
SysErr=(halt,illCase,fctReturn,stkOvl,illCall);
ErrorFrame=RECORD
pc: ADDRESS;
dRegs: ARRAY [0..7] OF LONGINT;
aRegs: ARRAY [8..15] OF ADDRESS;
CASE error: ErrorType OF
| trap: trapNr: INTEGER;
| exception: exceptionMask: LONGSET
| system: sysErr: SysErr
| assertion,breakPoint,explicit:
END;
header,body: ADDRESS
END;
ModType=(none,mod,lib,noImp);
ModKeys=ARRAY [0..maxKeys-1] OF CARDINAL;
ModName=ARRAY [0..maxModName-1] OF CHAR;
VAR
(*
* Umgebungsvariablen von M2Amiga.
*
* Einzig returnVal darf verändert,
* alle anderen nur gelesen werden!!
*)
wbStarted: BOOLEAN;
(*
* TRUE: Start von Workbench, FALSE: Start von CLI
*)
returnVal: LONGINT;
(*
* Dies ist der Rückgabewert an das Dos, kann beliebig
* gesetzt werden.
* Bei Workbench-Start wird returnVal als INTEGER
* in das Feld length der WBStartupMsg eingetragen.
*)
startupMsg: ADDRESS;
(*
* Zeiger auf die Workbench.WBStartup Message
* Nur gültig bei Workbench-Start (wbStarted),
* sonst NIL!
*)
dosCmdBuf: ADDRESS;
dosCmdLen: LONGINT;
(*
* Adresse und Länge der CLI-Argumente.
* Nur gültig bei CLI-Start (NOT wbStarted)!
*)
programName: ADDRESS;
(*
* Zeiger auf den Aufrufnamen des Programmes.
* Der String endet mit 0C.
*)
thisTask: ADDRESS;
(*
* Zeiger auf den eigenen Task/Process
*)
oldCurrentDir:BPTR;
(*
* CurrentDir bei Programmstart
*)
errorFrame: ErrorFrame;
(*
* errorFrame wird bei einem Laufzeitfehler mit den
* aktuellen Werten gefüllt.
*)
(*
* Für Erweiterungen der ENTWICKLER!
* Verhindert eine ständige Neudefinition von Arts.
*)
reserved1: INTEGER;
reserved2: ADDRESS;
reserved3: ADDRESS;
reserved4: ADDRESS;
(* Diese Prozedur ist IMMER die erste jedes Programms,
* NIEMALS aufrufen!!!!
*)
PROCEDURE Startup(cl{0}:LONGINT; cb{8}:ADDRESS): LONGINT;
(* Compiler Unterstützung *)
PROCEDURE StkChk(need{0}: LONGINT);
PROCEDURE SystemError(err{0}: SysErr); (* SystemError(halt) = HALT *)
PROCEDURE Mulu32(x{0},y{1}: LONGINT): LONGINT;
PROCEDURE Divu32(x{0},y{1}: LONGINT): LONGINT; (* D0=REM, D1=QUO *)
PROCEDURE Muls32(x{0},y{1}: LONGINT): LONGINT;
PROCEDURE Divs32(x{0},y{1}: LONGINT): LONGINT; (* D0=REM, D1=QUO *)
(* Nur für die "automatischen" Libraries! *)
PROCEDURE OpenLib(version{0}:LONGINT; name{9}:ADDRESS):ADDRESS;
PROCEDURE CloseLib(base{9}:ADDRESS);
(* Laufzeitunterstützung *)
PROCEDURE Assert(condition: BOOLEAN; msg: ADDRESS);
PROCEDURE BreakPoint(msg: ADDRESS);
PROCEDURE Error(header,body: ADDRESS);
PROCEDURE Requester(header,body,pos,neg: ADDRESS): BOOLEAN;
PROCEDURE Terminate;
PROCEDURE Exit(retVal{0}:LONGINT);
END Arts.